<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>老师信息</title>
    <style>
        body {
            width: 920px;
            margin: 0 auto;
        }
        .teacher {
            clear: both;
        }
        .photo {
            margin-top: 20px;
            width: 140px;
            height: 140px;
            border-radius: 70px 70px 70px 70px;
            overflow: hidden;
            float: left;
        }
        .content {
            margin-left: 60px;
            width: 580px;
            float: left;
        }
        .keyinfo {
            font: bold 18px Arial;
        }
        .back {
            float: right;
            margin-top: 20px;
        }
        .back>a {
            text-decoration: none;
            color: blue;
        }
        .back+h2 {
            clear: both;
        }
    </style>
</head>
<body>
    <div class="back">
        <a href="/">返回首页</a>
    </div>
    <h2>{{ subject.name }}学科老师信息</h2>
    <hr>
    {% for teacher in teachers %}
    <div class="teacher">
        <div class="photo">
            <img src="{{ teacher.photo.url }}" width="140">
        </div>
        <div class="content">
            <p class="keyinfo">
                {{ teacher.name }}&nbsp;&nbsp;
                {{ teacher.sex | yesno:"男, 女" }}&nbsp;&nbsp;
                {{ teacher.birth }}
            </p>
            <p>
                {{ teacher.intro }}
            </p>
            <p class="comment">
                <a href="/praise/?tno={{ teacher.no }}">好评</a>（<span>{{ teacher.good_count }}</span>）&nbsp;&nbsp;
                <a href="/criticize/?tno={{ teacher.no }}">差评</a>（<span>{{ teacher.bad_count }}</span>）
            </p>
        </div>
    </div>
    {% endfor %}
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
    <script>
    // $()函数中的箭头函数是页面加载完成之后要执行的回调函数
    $(() => {
        let flag = true
        // 通过$(选择器)获取页面元素绑定点击事件
        // on方法的第一个参数是事件名 第二个参数是事件回调函数
        // 事件回调函数的参数evt是代表事件的对象
        $('.comment>a').on('click', (evt) => {
            // 阻止事件默认行为（避免直接刷新页面）
            evt.preventDefault()
            if (flag) {
                // 实现函数节流
                flag = false
                setTimeout(() => { flag = true }, 2000)
                // 通过事件对象获取事件源并由$函数转成jQuery对象
                let anchor = $(evt.target)
                // 通过jQuery对象的getJSON方法发起Ajax请求
                // 第一个参数是请求的URL
                // 第二个参数是请求完成之后要执行的回调函数
                $.getJSON(anchor.attr('href'), (json) => {
                    if (json.code == 10000) { // 投票成功
                        // 获取与a标签相邻的span标签
                        let span = anchor.next()
                        // 将span标签的值加1再写回span标签
                        span.text(parseInt(span.text()) + 1)
                    } else {
                        alert(json.message)
                        if (json.code == 10002) {
                            location.href = '/login/?backurl=' + btoa('/teachers/?sno={{ subject.no }}')
                        }
                    }
                })
            } else {
                alert('操作太频繁')
            }
        })
    })
    </script>
</body>
</html>